package mysql

import "gorm.io/gorm"

type Goods struct {
	gorm.Model
	Title  string  `gorm:"type:varchar(30)" json:"title"`
	Cover  string  `gorm:"type:varchar(200)" json:"cover"`
	Price  float64 `gorm:"type:decimal(10,2)" json:"price"`
	Stock  int     `gorm:"type:int" json:"stock"`
	Status string  `gorm:"type:char(3)" json:"status"`
}

// FindGoods 商品查询
func (g *Goods) FindGoods(goodsId int) error {
	return DB.Debug().Where("id = ?", goodsId).First(&g).Error
}

type Order struct {
	gorm.Model
	UserId    int     `gorm:"type:int;comment:用户id" json:"user_id"`
	Numbering string  `gorm:"type:char(36);comment:订单编号" json:"numbering"`
	Total     float64 `gorm:"type:decimal(10,2);comment:订单总金额" json:"total"`
	PayType   string  `gorm:"type:varchar(30);comment:支付方式" json:"pay_type"`
	Status    string  `gorm:"type:char(3);comment:订单状态" json:"status"`
}

// AddOrder 生成订单
func (o *Order) AddOrder() error {
	return DB.Debug().Create(&o).Error
}

type OrderGoods struct {
	gorm.Model
	OrderId int     `gorm:"type:int;comment:订单id" json:"order_id"`
	GoodsId int     `gorm:"type:int;comment:商品id" json:"goods_id"`
	Title   string  `gorm:"type:varchar(30);comment:商品标题" json:"title"`
	Cover   string  `gorm:"type:varchar(200);comment:商品封面" json:"cover"`
	Price   float64 `gorm:"type:decimal(10,2);comment:商品价格" json:"price"`
	Num     int     `gorm:"type:int;comment:商品数量" json:"num"`
}

// AddOrderGoods 生成订单商品
func (o *OrderGoods) AddOrderGoods() error {
	return DB.Debug().Create(&o).Error
}

type User struct {
	gorm.Model
	Account  string `gorm:"type:varchar(30)" json:"account"`
	Password string `gorm:"type:varchar(32)" json:"password"`
	Status   string `gorm:"type:char(2)" json:"status"`
}

// FindUser 查询用户
func (u *User) FindUser(userId int) error {
	return DB.Debug().Where("id = ?", userId).First(&u).Error
}
